Skip to content

Conversation

@pmakode-akamai
Copy link
Contributor

@pmakode-akamai pmakode-akamai commented Jan 7, 2026

Description 📝

Add reusable Product Card component for Marketplace

Changes 🔄

  • Add reusable Product Card component for Marketplace
  • Add unit tests
  • Update the feature folder structure to keep Landing-related files together in the new MarketplaceLanding directory

Scope 🚢

  • All customers
  • Some customers (e.g. in Beta or Limited Availability)
  • No customers / Not applicable

Target release date 🗓️

N/A

Preview 📷

Note

Logos shown in the preview are used only as examples for testing. The actual product logos will be provided by the API

Light Mode Dark Mode
Screenshot 2026-01-07 at 3 45 44 PM Screenshot 2026-01-07 at 3 45 58 PM

How to test 🧪

Prerequisites

  • Enable MarketplaceV2 feature flag

  • Use the below example usage code in the MarketplaceLanding component for testing (use actual sample data or hardcoded values):

    Example usage code
      <Grid container spacing={2}>
        {products?.map((product) => {
          const partner = partnersMap.get(product.partner_id);
          const type = typesMap.get(product.type_id);
    
          return (
            <ProductSelectionCard
              data={{
                companyName: partner?.name,
                description: product.short_description,
                logoUrl:
                  partner?.[
                    theme.name === 'light'
                      ? 'logo_url_light_mode'
                      : 'logo_url_dark_mode'
                  ] ?? '',
                productName: product.name,
                productTag: product.tile_tag,
                type: type?.name,
              }}
              key={product.id}
              onClick={() =>
                navigate({ to: `/cloud-marketplace/catalog/${product.id}` })
              }
            />
          );
        })}
      </Grid>            
    

Verification steps

  • Verify that the Product Card component looks as per the UX Figma designs
  • Verify that logos of 48px × 48px OR 96px × 48px display correctly
  • Verify that the Product Card component is clickable
  • Ensure all tests pass successfully
Author Checklists

As an Author, to speed up the review process, I considered 🤔

👀 Doing a self review
❔ Our contribution guidelines
🤏 Splitting feature into small PRs
➕ Adding a changeset
🧪 Providing/improving test coverage
🔐 Removing all sensitive information from the code and PR description
🚩 Using a feature flag to protect the release
👣 Providing comprehensive reproduction steps
📑 Providing or updating our documentation
🕛 Scheduling a pair reviewing session
📱 Providing mobile support
♿ Providing accessibility support

  • I have read and considered all applicable items listed above.

As an Author, before moving this PR from Draft to Open, I confirmed ✅

  • All tests and CI checks are passing
  • TypeScript compilation succeeded without errors
  • Code passes all linting rules

@pmakode-akamai pmakode-akamai marked this pull request as ready for review January 7, 2026 11:06
@pmakode-akamai pmakode-akamai requested a review from a team as a code owner January 7, 2026 11:06
sxCardBase={(theme) => ({
alignItems: 'flex-start',
flexDirection: 'column',
minHeight: '280px',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe the card has a fixed dimension of 400 x 280 px. Could we set the Width too?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think SelectionCard is already configured to work properly on different screen sizes when used in grids. Adding a fixed width could break its responsiveness. Since this card is used the same way in other parts of CM, it should behave consistently throughout so I think we can keep it as is.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A confirmation with UX would be better

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have Figma UX mocks available for tablet and mobile views with different responsive widths, so I think we're good to go. cc @davyd-akamai

Copy link
Contributor

@tvijay-akamai tvijay-akamai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Thanks for your work here @pmakode-akamai.

@pmakode-akamai pmakode-akamai added the Add'tl Approval Needed Waiting on another approval! label Jan 9, 2026
@linode-gh-bot
Copy link
Collaborator

Cloud Manager UI test results

🎉 855 passing tests on test run #15 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
0 Failing855 Passing11 Skipped40m 57s

@github-project-automation github-project-automation bot moved this from Review to Approved in Cloud Manager Jan 12, 2026
@harsh-akamai harsh-akamai added Approved Multiple approvals and ready to merge! and removed Add'tl Approval Needed Waiting on another approval! labels Jan 12, 2026
@pmakode-akamai pmakode-akamai merged commit e793c25 into linode:develop Jan 12, 2026
35 checks passed
@github-project-automation github-project-automation bot moved this from Approved to Merged in Cloud Manager Jan 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Approved Multiple approvals and ready to merge! Marketplace

Projects

Status: Merged

Development

Successfully merging this pull request may close these issues.

6 participants